The decreased price of computers has resulted in their increased ownership. As a result, it is no longer uncommon for a household to own multiple computers of varying types, including desktops, laptops and handheld devices. Sharing resources between two or more of these different types of computers is often desirable. For example, an individual using a laptop computer may wish to use a printer or a high speed internet connection that is only accessible through his or her desktop computer. One way to facilitate the sharing of resources among the various computers of a household is to communicatively link the computers together into a network.
When computers communicate with one another over a network, they send and receive information in the form of network frames. Address information is embedded within each frame so that it can reach the proper destination or target computer. For example, the frame header typically includes a source and a destination hardware address to enable the destination computer to identify frames for which it is the intended recipient. Each frame contains a packet of data. The packet of data within the frame may also contain address information, such as a source and a destination network address.
Generally, before a first network device (the source device) can transmit network frames to a second network device (the destination device), the source device needs to have access to the hardware and network address of the destination device. The source device can access the network address of the destination device using various name resolution schemes that allow a human readable machine name to be converted into a network address. Such resolution schemes are known in the art and need not be described further herein. After the network address of the destination device is known, the source device must also gain access to the hardware address of the destination device.
One method for the source device to gain access to the hardware address of the destination device is to send a broadcast message such as provided for by the Address Resolution Protocol (ARP). However, because the broadcast ARP message must include the network address of the destination device, it can only be used after the source device gains access to the destination device's network address as previously described.
In general, all devices on a given network segment are able to receive broadcast network frames. Thus, the destination device can receive a broadcast ARP message even though its hardware address is not included in the frame header. When the destination device receives the ARP message, it responds to the source device with another ARP message that includes the hardware address of the destination network device. In this manner, the source device gains access to the hardware address of the destination device so that the source device can transmit properly addressed frames to the destination device.
In a simple network configuration, all devices are located on a single network segment. For example, two computers, each with its own interface card, may be physically connected to one another with a 10Base-T cable using Ethernet technology. Communication between two computers on a single network segment is relatively straightforward. One computer can send a network frame to the other computer by providing the frame with a header that includes the hardware address of the other computer onto the network segment, e.g. a 10Base-T cable. Because the two computers are physically interconnected, the destination computer's interface card receives the network frame. Furthermore, because the destination hardware address matches its own, the destination accepts and processes the network frame.
If the source computer does not have access to the hardware address of the intended destination computer, the source computer determines the destination computer's network address if it is not already known and sends a broadcast network frame over the network segment with an ARP message as described above. Once again, because the two computers are physically located on the same network segment, the destination computer's interface card sees the broadcast message and replies to the source computer with an ARP response containing the destination computer's hardware address. After this process is complete, the source computer can send network frames specifying the proper destination computer hardware address to the destination computer.
Configuring a network so that all network devices are linked to a single segment is not always possible or even desirable. This is especially true if more than one physical communication medium is being used. For example, a consumer may own a laptop computer as well as two desktop computers, and may wish to organize them into a network. The user may wish to have the first desktop computer connected to a broadband internet connection, thereby acting as a gateway, and have the second desktop computer connected to the first desktop computer via an Ethernet cable. The user may wish to have the laptop communicate with the first desktop computer via an 802.11b wireless link. Thus, the first desktop computer may have to have two network interfaces, one for the 802.11b connection to the laptop and a second for the wired Ethernet connection to the second desktop computer. The end result is a multi-segmented network.
Multi-segment networks require additional software and/or hardware to relay data between different segments. Without such hardware and/or software, a destination device on one segment would not be able to receive data from a network device on another segment. Internet Protocol (IP) routing provides one way to relay data between different segments. In IP routing, each network segment is assigned a unique subnet number. This unique subnet number is included as part of the network address of each network device. The subnet number allows a source device to determine whether a destination device is located on another network segment. If the destination device is located on another network segment, the source device transmits the packet of data to a router, which is located at the junction of the two subnets. The router forwards the packet of data to the destination device. The drawback of using IP routing is that it requires the user to perform various configuration tasks, such as assigning unique subnet numbers to the network segments. Unfortunately, it is difficult for the average user to implement this method in his or her home network.
Conventional bridging is another technique that can be used to interconnect multiple network segments. A bridge is a computer or other network device that receives the network frames transmitted over one network segment and retransmits them over the other network segments such that the frames are unaltered, i.e. contain the same hardware source and destination addresses. In this manner, a network frame will eventually reach the proper destination device. Because the bridge has to retransmit the frame with the original source hardware address, the network interface on the bridge must be capable of transmitting an arbitrary source hardware address, i.e. a source hardware address other than its own. In addition, the network interface of the bridge must be able to receive network frames having destination hardware addresses other than its own. The capability of receiving multiple hardware addresses is often referred to as a promiscuous receive mode. However, promiscuous receive mode and arbitrary source address transmission are difficult or impossible to implement on some types of network technologies, such as 1394 or 802.11b wireless.